Skip to content

Serv00

Tags
Serv00
Mail
VPS
Words count
1551 字
Reading time
8 分钟

介绍

Serv00 是一家来自波兰的主机服务商,因提供10年免费的虚拟主机火爆全网。

限制

  • 3个月需登录一次 panel 或 ssh
  • 最多可开放端口x3、非MySQL数据库x3、MySQL数据库x3、站点x100

注册

注册需:可收邮件的邮箱x1(注册成功后VPS信息将发送至该邮箱)

Serv00不同子域名服务注册有人数限制,若达到上限可能不再开放注册或新增服务器继续接受注册

➡️ Serv00.com,进入官网点击 [Register an account] 注册

  • [First Name] 和 [Last Name] 随意
  • [Username] 就是 panel 登录账号
  • [Answer] 填写 free 即可

注册成功后,查看邮件包含以下信息(以下类似_sX.serv00.com_中的 X 代表注册时最新服务器的序号)

  • Login, Password - panel 登录账号密码
  • SSH/SFTP 服务器地址 - sX.serv00.com
  • Home directory - 主目录(/usr/home/用户名)
  • Devil WEB - 管理面板地址(https:/panelX.serv00.com/)
  • SMTP, IMAP, POP3 address - 邮件服务地址(mailX.serv00.com,附带开放服务的端口)
  • Webmail - 登录邮箱地址(https://mail.serv00.com/)
  • MySQL server - MySQL 服务地址(mysqlX.serv00.com)
  • PhpMyAdmin - MySQL 管理地址(https://pma.serv00.com/)
  • PostgreSQL server - PgSQL 服务地址(pgsqlX.serv00.com)
  • PhpPgAdmin - PgSQL 管理地址(https://pga.serv00.com/)
  • MongoDB server - MongoDB 服务地址(mongoX.serv00.com)
  • RockMongo - Mongo 管理地址(https://moa.serv00.com/)
  • DNS servers - DNS 服务器(dns1.serv00.com, dns2.serv00.com)

PANEL

访问邮件中 Devil WEB 地址,输入 Login & Password 登录

SSH

登录名:邮件中 Login,域名:邮件中 SSH server,密码:邮件中 Password
ssh [email protected]

MAIL

注册域名

注册域名可为 Serv00 子域名或自由域名,此处以 example.com 为例,也可为 自有二级域名

在 [WWW websites] - [Add new websites] - [Domain],输入域名,点 [Add]

添加 DNS 记录

注意此处类似 mailX.serv0.com 中的 X 代表数字,以邮件中 SMTP address 地址为准

[SSL] - [WWW websites] - [IP Address] 任选一个

若使用 Serv00 子域名,只需填写 A 记录

DKIM是DomainKeys Identified Mail的缩写。它是一种电子邮件认证方法,允许发件人防止电子邮件内容在发送过程中被篡改。

第四项 DKIM 配置可选,完成后面邮箱创建步骤后,可在 [Dkim] 中生成一个 DNS 记录和内容,格式如下表

类型记录内容
Aexample.comSSL 中查询的 IP Address
MXexample.commailX.serv00.com
TXTexample.comv=spf1 a mx include:mailX.serv00.com -all
TXTdevil._domainkeyv=DKIM1; k=rsa; p=XXXXXXX

创建邮箱

在 [E-mail] 中 [Add new e-mail]

  • E-mail address - [email protected]
  • Password&Confirm password - 随后登录邮箱管理的密码

创建后可在列表中找到邮箱中的 [Detail] - [Set quota] 设置限额,此处我设置为 **100M

登录

访问 mail,输入创建的邮箱地址及密码登录即可

部署服务

Lsky 图床

➡️ Lksy 官方文档

创建数据库

官方支持的数据库中在 Serv00 服务中可用的有: MySQL、PgSQL

以下以 MySQL 为例

[MySQL] - [Add database]

  • [Database name] - 数据库名称(注意有带固定前缀)
  • [Username] & [Password] - 数据库账号密码(注意账号有带固定前缀)

点击 [Add] 创建

创建站点

[WWW website] - [Add new website],输入域名,点击 [Add]

注意若为自有域名需添加域名记录,在 [SSL] - [WWW websites] - [IP Address] 查询任意 IP

在域名服务商添加记录 A - img.example.com - 查询的IP地址

[WWW website] - [Manage SSL certificates] - [Add certificate] 添加 Lest's Encrypt 证书

安装

SSH 连接服务器,执行命令安装 Lsky

release_info=(curlshttps://api.github.com/repos/lskyorg/lskypro/releases/latest)asseturl=(echo "releaseinfo"|jqr.assets[]|select(.name!="sourcecode")|.browserdownloadurl)curlLotemp.zip"asset_url" && unzip -q temp.zip && rm -f temp.zip
rm -rf public_html && ln -s "PWD/public""PWD/public_html"

提权cd .. && chmod -R 0777 站点域名

之后在 [WWW website] - 站点 - [Detail] - [Open Basedir directories] 末尾添加 /usr/home/用户名/domains/站点域名/并开启 GZIP compressionForce SSLAllow PHP eval() functionAllow PHP exec() function

配置

邮件配置

  • 主机地址 - mailX.serv00.com
  • 连接端口 - 默认 587
  • 用户名 - 邮箱地址
  • 密码 - 邮箱密码

typora+picgo

不过多赘述,请求token地址https://img.example.com/api/v1/token

自动启动

听说 Serv00 的主机会不定时重启,所以需要添加自启任务。

在 Panel 中找到 Cron jobs 选项卡,使用 Add cron job 功能添加任务,Specify time 选择 After reboot,即为重启后运行。Form type 选择 Advanced,Command 写:

BASH

/home/你的用户名/.npm-global/bin/pm2 resurrect >/dev/null 2>&1 && /home/你的用户名/.npm-global/bin/pm2 restart all >/dev/null 2>&1

记得把你的用户名改为你的用户名

添加完之后,在 SSH 窗口保存 pm2 的当前任务列表快照:pm2 save

这样每次 serv00 不定时重启任务时,都能自动调用 pm2 读取保存的任务列表快照,恢复任务列表。如果在保存了任务列表快照后又改变了任务 pm2 的任务列表,需要重新执行 pm2 save 以更新任务列表。

shell
#!/bin/bash  
  
USERNAME='MercuryZz'  
PASSWORD='qbhZAI6GHq*va8#OkLu7'  
SSH_ADDRESS='s7.serv00.com'  
SERVER_ADDRESS='https://img.zaizai.baby'  
SMTP_SERVER_ADDRESS='mail7.serv00.com'  
SMTP_SERVER_PORT='897'  
SMTP_EMAIL='[email protected]'  
SMTP_PASSWORD='.Q2W*Ep&26G9JtY1KlLgE83.Mi54LF'  
TARGET_EMAIL='[email protected]'  
  
check_health() {  
    local CODE=$(curl -o /dev/null -s -w "%{http_code}\n" --connect-timeout 10 --max-time 30 ${SERVER_ADDRESS})  
    if [ "$CODE" != "200" ]; then  
        echo 'Server is down!'  
        return 1  
    fi  
    return 0  
}  
  
send_mail() {  
    if [ -n "${SMTP_SERVER_ADDRESS}" ] && [ -n "${SMTP_SERVER_PORT}" ] && [ -n "${SMTP_EMAIL}" ] && [ -n "${SMTP_PASSWORD}" ] && [ -n "${TARGET_EMAIL}" ]; then  
        curl --ssl-reqd \  
          --url "smtps://${SMTP_SERVER_ADDRESS}:${SMTP_SERVER_PORT}" \  
          --user "${SMTP_EMAIL}:${SMTP_PASSWORD}" \  
          --mail-from "${SMTP_EMAIL}" \  
          --mail-rcpt "${TARGET_EMAIL}" \  
          -T - <<EOF  
From: ${SMTP_EMAIL}  
To: ${TARGET_EMAIL}  
Subject: ${EMAIL_TITLE}  

${EMAIL_DATA}  
EOF  
    else  
        echo 'Cancel send email due to missing or empty configuration.'  
    fi  
}  
  
restart_server() {  
    echo 'Trying to restart server...'  
    local REMOTE_COMMAND1="/home/${USERNAME}/.npm-global/bin/pm2 resurrect && exit" \  
    && sshpass -p "${PASSWORD}" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt ${USERNAME}@${SSH_ADDRESS} "$(eval echo $REMOTE_COMMAND1)" \  
    && local REMOTE_COMMAND2="/home/${USERNAME}/.npm-global/bin/pm2 restart all && exit" \  
    && sshpass -p "${PASSWORD}" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt ${USERNAME}@${SSH_ADDRESS} "$(eval echo $REMOTE_COMMAND2)"   
}  
  
check_health  
EXIT_CODE=$?  
if [ ${EXIT_CODE} -eq 1 ]; then  
    EMAIL_TITLE='Server is down!'  
    EMAIL_DATA="${SERVER_ADDRESS} is down, trying to restart server..."  
    send_mail  
  
    while [ ${EXIT_CODE} -eq 1 ]; do  
        restart_server  
        sleep 120  
        check_health  
        EXIT_CODE=$?  
    done  
  
    if [ ${EXIT_CODE} -eq 0 ]; then  
        EMAIL_TITLE='Server is up!'  
        EMAIL_DATA="${SERVER_ADDRESS} has been restarted successfully."  
        send_mail  
    fi  
fi